Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Поиск по ключевым словам (со стеммером) (armadillo)
Author Message
armadillo
Заглянувший



Joined: 01 Aug 2019
Posts: 1
Карма: 0
   поощрить/наказать


PostPosted: Thu Aug 01, 2019 3:07 pm (написано за 6 минут 29 секунд)
   Post subject: Поиск по ключевым словам (со стеммером)
Reply with quote

так и не понял, жив этот форум или нет.

вопрос в тормозах
разбираю слова стеммером, формирую джойны ON wordid IN ()
все хорошо было на маленькой базе, когда объемы выросли, все стало безбожно тупить.
добавил в таблицу слов счетчик документов, (++ при индексации документа) - чтобы не делать count(*) при каждом формировании запроса
сортирую джойны по возрастанию - то есть сначала приджойнится слово с 1 документом, потом с 10 , потом со 100.

со временем пришлось свернуть джойны во вложенные запросы и добавить force index
Code (php): скопировать код в буфер обмена
JOIN (www.php.net/join) (

SELECT DISTINCT iw0.documid
FROM s2iwords iw0
WHERE iw0.wordid
IN ( 1602, 73605, 2912644, 3182817, 28832 )
)iwtmp ON iwtmp.documid = dc.documid
JOIN (www.php.net/join) iwords iw1
FORCE INDEX ( doc2 ) ON iw1.documid = iwtmp.documid
AND iw1.wordid
IN ( 1603, 1959742, 4326670, 1574411, 4394943, 1353379, 3280260, 1352665, 1352697, 3502846, 3502847, 3502848, 3960094, 4315186, 3491600, 1277157, 949812, 3580166, 3558453, 10771, 3573210, 2519998, 4230002, 11155, 3598851, 687017, 1033452, 2255697, 89053, 3639402, 3649210, 3665338 )
это позволило убрать ненужные тормоза, но остались "нужные" - если пользователь вводит слова "документ и договор" (по каждому индексированно миллион документов)
результат будет неразумен по скорости.
Ситуация осложняется тем, что в некоторых случаях надо искать по всем миллионам документов, а в некоторых свой есть отбор всего сотни. Заранее предсказать этого нельзя - это конструктор.


Варианты:
- административно запретить такой поиск.
- найти еще варианты
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML